<?php
// ------------------------------------------------------------------------
// |@Author       : Jarmin <edshop@qq.com>
// |@----------------------------------------------------------------------
// |@Date         : 2023-05-31 20:31:37
// |@----------------------------------------------------------------------
// |@LastEditTime : 2023-06-03 18:27:04
// |@----------------------------------------------------------------------
// |@LastEditors  : Jarmin <jarmin@ladmin.cn>
// |@----------------------------------------------------------------------
// |@Description  : 
// |@----------------------------------------------------------------------
// |@FilePath     : FileClassify.php
// |@----------------------------------------------------------------------
// |@Copyright (c) 2023 http://www.ladmin.cn   All rights reserved. 
// ------------------------------------------------------------------------
namespace app\api\controller;

use think\admin\Controller;
use think\admin\extend\DataExtend;

class FileClassify extends Controller
{
    /**
     * 获取文件分类信息列表（支持分页）
     * @return mixed 返回成功或失败的提示信息以及菜单信息列表
     */
    public function list()
    {
        if ($this->request->isGet()) {
            // 查询文件分类信息
            $list = $this->modelFileClassify->listFileClassify($this->app->request->param());
            // 将查询到的文件分类信息数组转化为树形结构
            return $this->success(lang('filec.info_get_success'), DataExtend::arr2tree($list));
        }
    }

    /**
     * 添加或修改文件分类信息
     * @validate true
     * @sing true
     * @mixed validate true
     * @return mixed 返回成功或失败的提示信息以及文件分类信息
    */
    public function save()
    {
        if ($this->request->isPost()) {
            // 保存文件分类信息
            $result = $this->modelFileClassify->saveFileClassify($this->app->request->post());
            return $this->success(lang('filec.edit_success'),$result);
        }
    }

    /**
     * 对文件分类进行拖拽排序
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及排序后的文件分类
     */
    public function sort()
    {
        if ($this->request->isPut()) {
            // 对文件分类进行排序
            $result = $this->modelFileClassify->sortFileClassify($this->app->request->put());
            return $this->success(lang('filec.sort_success'),$result);
        }
    }

    /**
     * 根据文件分类 ID 删除文件分类项及其所有子孙节点
     * @validate true
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及删除的文件分类项
     */
    public function remove()
    {
        if ($this->request->isDelete()) {
            // 删除文件分类项及其所有子孙节点
            $result = $this->modelFileClassify->removeFileClassify($this->app->request->delete());
            return $this->success(lang('filec.delete_success'),$result);
        }
    }
}